home *** CD-ROM | disk | FTP | other *** search
/ Personal Computer World 2009 February / PCWFEB09.iso / Software / Linux / Kubuntu 8.10 / kubuntu-8.10-desktop-i386.iso / casper / filesystem.squashfs / usr / sbin / remove-default-ispell < prev    next >
Text File  |  2008-06-04  |  2KB  |  89 lines

  1. #!/usr/bin/perl -w
  2.  
  3. use Debian::DictionariesCommon q(dico_checkroot);
  4. use Debconf::Client::ConfModule q(:all);
  5.  
  6. dico_checkroot ();
  7.  
  8. die "Usage: $0 package-name\n" if (scalar @ARGV != 1);
  9.  
  10. version ('2.0');
  11.  
  12. my $class    = "ispell";
  13. my $question = "dictionaries-common/default-$class";
  14. my $script   = "/usr/share/dictionaries-common/dc-debconf-select.pl";
  15. my %title    = ('ispell'   => "Dictionaries-common: Ispell dictionary",
  16.         'wordlist' => "Dictionaries-common: Wordlist dictionary"
  17.         );
  18.  
  19. my ($errorcode, $value) = get $question;
  20.  
  21. if ($errorcode == 0) {
  22.   require $script;
  23.  
  24.   my $pkg          = $ARGV[0];
  25.   my $languages    = &dico_parse_languages($class,"languages");
  26.   my @newchoices   = ();
  27.   my %langsinpkg   = ();
  28.  
  29.   # Get list of languages provided by package being removed. Check
  30.   # first if package is already removed, some packages using cdbs
  31.   # call this script twice, the second with package already removed
  32.   if ( exists $languages->{$pkg} ){
  33.     foreach ( split (/\s*,\s*/, $languages->{$pkg}) ){
  34.       $langsinpkg{$_}++;
  35.     }
  36.     # Update $languages removing $pkg entry
  37.     delete $languages->{$pkg};
  38.  
  39.     # Update question variables with new values
  40.     my ($choices, $echoices ) = &dico_get_all_choices($class,$languages);
  41.     subst ($question, "choices", $choices);
  42.     subst ($question, "echoices", $echoices);
  43.  
  44.     # Ask with new values if current value is being removed and langs are left
  45.     if ( %$languages && exists $langsinpkg{$value} ) {
  46.       fset  ($question, "seen", "false");
  47.       input ("critical", $question);
  48.       title ($title{$class});
  49.       go ();
  50.     }
  51.   }
  52. }
  53.  
  54. system "update-default-$class --rebuild";
  55.  
  56. # Local Variables:
  57. #  perl-indent-level: 2
  58. # End:
  59.  
  60. __END__
  61.  
  62. =head1 NAME
  63.  
  64. remove-default-ispell - remove default ispell dictionary
  65.  
  66. =head1 SYNOPSIS
  67.  
  68.  remove-default-ispell <package>
  69.  
  70. =head1 DESCRIPTION
  71.  
  72. WARNING: Not to be used from the command line unless you know very well what you are doing.
  73.  
  74. When called from package postrm, this program will take care of removing the entries
  75. associated to a ispell package from the dictionaries-common database
  76. and call for the new selection if it was the default one.
  77.  
  78. =head1 SEE ALSO
  79.  
  80. The dictionaries-common policy document
  81.  
  82. =head1 AUTHORS
  83.  
  84. Rafael Laboissiere
  85.  
  86. =cut
  87.  
  88. #  LocalWords:  ispell wordlist
  89.